package com.choosefine.it.common.utils;

import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.util.HashMap;
import java.util.Map;
import java.util.Properties;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeansException;
import org.springframework.core.io.support.PropertiesLoaderUtils;

/**
 * 通过代码加载指定的 xxxx.properties，将所有的key,value装载到一个Map里去，需要时直接通过静态方法进行读取
 * 
 * @auth liaozhanggen 2016-11-24 下午9:19:34
 * #auth update liaozhanggen 2017-02-23 废弃使用propertity方式文件，使用yml文件加载
 *
 */
@Deprecated
public class PropertyUtils {
	private static Logger logger = LoggerFactory.getLogger(PropertyUtils.class);
	
	private static Map<String, String> propertiesMap = new HashMap<>();
	
	private static void processProperties(Properties props) throws BeansException {
		logger.info("--------come in------------");
//        propertiesMap = new HashMap<String, String>();
        
//        if (propertiesMap.size() > 0) {
//			return;
//		}
        
        for (Object key : props.keySet()) {
            String keyStr = key.toString();
            
            try {
                propertiesMap.put(keyStr, new String(props.getProperty(keyStr).getBytes("ISO-8859-1"),"utf-8"));
            } catch (UnsupportedEncodingException e) {
                e.printStackTrace();
            }catch (java.lang.Exception e){
                e.printStackTrace();
            }
        }
        logger.info("--------come out------------");
    }
	
//    public static void loadAllProperties(){
//        try {
//        	if (propertiesMap.size() > 0) {
//        		return;
//        	}
//        	
//	        Properties properties = PropertiesLoaderUtils.loadAllProperties("config/application.properties");
//	        processProperties(properties);
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }
//
//    public static String getProperty(String key) {
//        return propertiesMap.get(key).toString();
//    }
//    /**
//     * 普通的java读取配置文件方法（目前只针对读取短信验证码参数使用，欢迎大家改进）
//     */
//    public static String getValue(String fileNamePath, String key)throws IOException {  
//        Properties props = new Properties();  
//        InputStream in = null;  
//        try {  
//            in = new FileInputStream(fileNamePath);  
//            // 如果将in改为下面的方法，必须要将.Properties文件和此class类文件放在同一个包中  
//            //in = propertiesTools.class.getResourceAsStream(fileNamePath);  
//            props.load(in);  
//            String value = props.getProperty(key);  
//            // 有乱码时要进行重新编码  
//            if(key.equals("shixiaobao.sms.signName")){
//            	value=new String(props.getProperty(key).getBytes("ISO-8859-1"), "UTF-8");  
//            }
//            return value;  
//  
//        } catch (IOException e) {  
//            e.printStackTrace();  
//            return null;  
//  
//        } finally {  
//            if (null != in)  
//                in.close();  
//        }  
//    }  
}

